package org.jeecg.modules.travel.entity;

import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeecg.common.aspect.annotation.Dict;
import org.jeecg.common.constant.ProvinceCityArea;
import org.jeecg.common.util.SpringContextUtils;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * @Description: 景点表
 * @Author: jeecg-boot
 * @Date:   2025-04-19
 * @Version: V1.0
 */
@Data
@TableName("jh_attraction")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@Schema(description="景点表")
public class JhAttraction implements Serializable {
    private static final long serialVersionUID = 1L;

	/**主键*/
	@TableId(type = IdType.ASSIGN_ID)
    @Schema(description = "主键")
    private String id;
	/**创建人*/
    @TableField("create_by")
    @Schema(description = "创建人")
    private String createBy;
	/**创建日期*/
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @Schema(description = "创建日期")
    private Date createTime;
	/**更新人*/
    @Schema(description = "更新人")
    private String updateBy;
	/**更新日期*/
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @Schema(description = "更新日期")
    private Date updateTime;
	/**所属部门*/
    @Schema(description = "所属部门")
    private String sysOrgCode;
	/**景点名称*/
	@Excel(name = "景点名称", width = 15)
    @Schema(description = "景点名称")
    private String attractionName;
	/**主题*/
    @Dict(dictTable = "jh_theme", dicText = "theme_name", dicCode = "id")
	@Excel(name = "主题", width = 15)
    @Schema(description = "主题")
    private String attractionTheme;
	/**描述*/
	@Excel(name = "描述", width = 15)
    @Schema(description = "描述")
    private String attractionDescription;
	/**建议游览时长（分钟）*/
	@Excel(name = "建议游览时长（分钟）", width = 15)
    @Schema(description = "建议游览时长（分钟）")
    private Integer attractionRecommendedDuration;
	/**最大承载量*/
	@Excel(name = "最大承载量", width = 15)
    @Schema(description = "最大承载量")
    private Integer attractionCapacity;
	/**热门景点 0否 1是*/
    @Dict(dicCode = "yn")
	@Excel(name = "热门景点 0否 1是", width = 15)
    @Schema(description = "热门景点 0否 1是")
    private Integer isFeatured;
	/**热度*/
	@Excel(name = "热度", width = 15)
    @Schema(description = "热度")
    private Integer attractionHeat;
	/**状态 0-开放 1-维修 2-临时关闭*/
    @Dict(dicCode = "scenic_spot_status")
	@Excel(name = "状态 0-开放 1-维修 2-临时关闭", width = 15)
    @Schema(description = "状态 0-开放 1-维修 2-临时关闭")
    private Integer attractionStatus;
	/**营业时间*/
	@Excel(name = "营业时间", width = 15)
    @Schema(description = "营业时间")
    private String businessHour;
	/**国*/
	@Excel(name = "国", width = 15)
    @Schema(description = "国")
    private String attractionCountry;
	/**省份*/
	@Excel(name = "省份", width = 15)
    @Schema(description = "省份")
    private String attractionProvince;
	/**城市*/
	@Excel(name = "城市", width = 15)
    @Schema(description = "城市")
    private String attractionCity;
	/**县/市/区*/
    @Excel(name = "县/市/区", width = 15,exportConvert=true,importConvert = true )
    @Schema(description = "县/市/区")
    private String attractionDistrict;
	/**区域编码*/
	@Excel(name = "区域编码", width = 15)
    @Schema(description = "区域编码")
    private String areaCode;
	/**景区地址*/
	@Excel(name = "景区地址", width = 15)
    @Schema(description = "景区地址")
    private String attractionAddress;
	/**经度*/
	@Excel(name = "经度", width = 15)
    @Schema(description = "经度")
    private BigDecimal longitude;
	/**纬度*/
	@Excel(name = "纬度", width = 15)
    @Schema(description = "纬度")
    private BigDecimal latitude;
	/**联系人名称*/
	@Excel(name = "联系人名称", width = 15)
    @Schema(description = "联系人名称")
    private String contactName;
	/**联系电话*/
	@Excel(name = "联系电话", width = 15)
    @Schema(description = "联系电话")
    private String contactPhone;
	/**官网网站*/
	@Excel(name = "官网网站", width = 15)
    @Schema(description = "官网网站")
    private String website;
	/**删除：0-否，1-是*/
	@Excel(name = "删除：0-否，1-是", width = 15)
    @Schema(description = "删除：0-否，1-是")
    @TableLogic
    private Integer delFlag;
    /**点赞量*/
    @Excel(name = "点赞量", width = 15)
    @Schema(description = "点赞量")
    private Integer likeCount;
    /**审核状态：-1-审核不通过，0-待审核，1-审核通过*/
    @Dict(dicCode = "check_status")
    @Excel(name = "审核状态：-1-审核不通过，0-待审核，1-审核通过", width = 15)
    @Schema(description = "审核状态：-1-审核不通过，0-待审核，1-审核通过")
    private Integer checkStatus;
    /**审核人*/
    @Dict(dictTable = "sys_user", dicText = "username", dicCode = "id")
    @Excel(name = "审核人", width = 15)
    @Schema(description = "审核人")
    private String checkPeople;
    /**审核时间*/
    @Excel(name = "审核时间", width = 15)
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @Schema(description = "审核时间")
    private Date checkTime;
    /**审核备注*/
    @Excel(name = "审核备注", width = 15)
    @Schema(description = "审核备注")
    private String checkRemark;
    /**经纬度坐标点*/
    @Excel(name = "经纬度坐标点", width = 15)
    @Schema(description = "经纬度坐标点")
    private String location;

}
